<?php

namespace TableTennis\LicenseeBundle\Entity;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(repositoryClass="TableTennis\LicenseeBundle\Repository\LicenseeMatchRepository")
 * @ORM\Table(name="licensee_match")
 */
class LicenseeMatch {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer", nullable=false)
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var Licensee
     *
     * @ORM\ManyToOne(targetEntity="TableTennis\LicenseeBundle\Entity\Licensee")
     * @ORM\JoinColumn(name="licensee_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")
     */
    public $licensee_id;

    /**
     * @ORM\Column(type="datetime")
     */
    public $datetime_match;

    /**
     * @ORM\Column(type="string",length="1", columnDefinition="ENUM('V', 'D')")
     * @Assert\NotBlank()
     */
    public $category;

    /**
     * @ORM\Column(type="integer", nullable=false)
     */
    public $opponent_position;

    /**
     * @ORM\Column(type="string", length=64)
     * @Assert\NotBlank
     * @Assert\MinLength(3)
     */
    public $opponent_lastname;

    /**
     * @ORM\Column(type="string", length=64)
     * @Assert\NotBlank
     * @Assert\MinLength(3)
     */
    public $opponent_firstname;

    /**
     * @ORM\Column(type="decimal", length=3, scale="2", nullable=true)
     */
    public $opponent_point;

    /**
     * @ORM\Column(type="integer", length=4)
     */
    public $opponent_licensee_number;

    /**
     * @ORM\Column(type="integer")
     */
    public $opponent_ranking;

    /**
     * @ORM\Column(type="integer")
     */
    public $number_day;

    /**
     * @ORM\Column(type="string", length=32)
     */
    public $code;

    /**
     * @ORM\Column(type="decimal", length=3, scale="2")
     */
    public $coefficient;

    /**
     * @ORM\Column(type="decimal", length=3, scale="2", nullable=true)
     */
    public $points_evaluation;

    /**
     * @var MatchType
     *
     * @ORM\ManyToOne(targetEntity="TableTennis\MatchTypeBundle\Entity\MatchType")
     * @ORM\JoinColumn(name="match_type_id", referencedColumnName="id")
     */
    public $match_type_id;

    /**
     * @var User
     *
     * @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User")
     * @ORM\JoinColumn(name="creation_user_id", referencedColumnName="id")
     */
    public $creation_user_id;

    /**
     * @var User
     *
     * @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User")
     * @ORM\JoinColumn(name="modification_user_id", referencedColumnName="id")
     */
    public $modification_user_id;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set datetime_match
     *
     * @param datetime $datetimeMatch
     */
    public function setDatetimeMatch($datetimeMatch)
    {
        $this->datetime_match = $datetimeMatch;
    }

    /**
     * Get datetime_match
     *
     * @return datetime 
     */
    public function getDatetimeMatch()
    {
        return $this->datetime_match;
    }

    /**
     * Set category
     *
     * @param string $category
     */
    public function setCategory($category)
    {
        $this->category = $category;
    }

    /**
     * Get category
     *
     * @return string 
     */
    public function getCategory()
    {
        return $this->category;
    }

    /**
     * Set opponent_position
     *
     * @param integer $opponentPosition
     */
    public function setOpponentPosition($opponentPosition)
    {
        $this->opponent_position = $opponentPosition;
    }

    /**
     * Get opponent_position
     *
     * @return integer 
     */
    public function getOpponentPosition()
    {
        return $this->opponent_position;
    }

    /**
     * Set opponent_lastname
     *
     * @param string $opponentLastname
     */
    public function setOpponentLastname($opponentLastname)
    {
        $this->opponent_lastname = $opponentLastname;
    }

    /**
     * Get opponent_lastname
     *
     * @return string 
     */
    public function getOpponentLastname()
    {
        return $this->opponent_lastname;
    }

    /**
     * Set opponent_firstname
     *
     * @param string $opponentFirstname
     */
    public function setOpponentFirstname($opponentFirstname)
    {
        $this->opponent_firstname = $opponentFirstname;
    }

    /**
     * Get opponent_firstname
     *
     * @return string 
     */
    public function getOpponentFirstname()
    {
        return $this->opponent_firstname;
    }

    /**
     * Set opponent_point
     *
     * @param decimal $opponentPoint
     */
    public function setOpponentPoint($opponentPoint)
    {
        $this->opponent_point = $opponentPoint;
    }

    /**
     * Get opponent_point
     *
     * @return decimal 
     */
    public function getOpponentPoint()
    {
        return $this->opponent_point;
    }

    /**
     * Set opponent_licensee_number
     *
     * @param integer $opponentLicenseeNumber
     */
    public function setOpponentLicenseeNumber($opponentLicenseeNumber)
    {
        $this->opponent_licensee_number = $opponentLicenseeNumber;
    }

    /**
     * Get opponent_licensee_number
     *
     * @return integer 
     */
    public function getOpponentLicenseeNumber()
    {
        return $this->opponent_licensee_number;
    }

    /**
     * Set opponent_ranking
     *
     * @param integer $opponentRanking
     */
    public function setOpponentRanking($opponentRanking)
    {
        $this->opponent_ranking = $opponentRanking;
    }

    /**
     * Get opponent_ranking
     *
     * @return integer 
     */
    public function getOpponentRanking()
    {
        return $this->opponent_ranking;
    }

    /**
     * Set number_day
     *
     * @param integer $numberDay
     */
    public function setNumberDay($numberDay)
    {
        $this->number_day = $numberDay;
    }

    /**
     * Get number_day
     *
     * @return integer 
     */
    public function getNumberDay()
    {
        return $this->number_day;
    }

    /**
     * Set code
     *
     * @param string $code
     */
    public function setCode($code)
    {
        $this->code = $code;
    }

    /**
     * Get code
     *
     * @return string 
     */
    public function getCode()
    {
        return $this->code;
    }

    /**
     * Set coefficient
     *
     * @param decimal $coefficient
     */
    public function setCoefficient($coefficient)
    {
        $this->coefficient = $coefficient;
    }

    /**
     * Get coefficient
     *
     * @return decimal 
     */
    public function getCoefficient()
    {
        return $this->coefficient;
    }

    /**
     * Set points_evaluation
     *
     * @param decimal $pointsEvaluation
     */
    public function setPointsEvaluation($pointsEvaluation)
    {
        $this->points_evaluation = $pointsEvaluation;
    }

    /**
     * Get points_evaluation
     *
     * @return decimal 
     */
    public function getPointsEvaluation()
    {
        return $this->points_evaluation;
    }

    /**
     * Set licensee_id
     *
     * @param TableTennis\LicenseeBundle\Entity\Licensee $licenseeId
     */
    public function setLicenseeId(\TableTennis\LicenseeBundle\Entity\Licensee $licenseeId)
    {
        $this->licensee_id = $licenseeId;
    }

    /**
     * Get licensee_id
     *
     * @return TableTennis\LicenseeBundle\Entity\Licensee 
     */
    public function getLicenseeId()
    {
        return $this->licensee_id;
    }

    /**
     * Set match_type_id
     *
     * @param TableTennis\MatchTypeBundle\Entity\MatchType $matchTypeId
     */
    public function setMatchTypeId(\TableTennis\MatchTypeBundle\Entity\MatchType $matchTypeId)
    {
        $this->match_type_id = $matchTypeId;
    }

    /**
     * Get match_type_id
     *
     * @return TableTennis\MatchTypeBundle\Entity\MatchType 
     */
    public function getMatchTypeId()
    {
        return $this->match_type_id;
    }

    /**
     * Set creation_user_id
     *
     * @param Application\Sonata\UserBundle\Entity\User $creationUserId
     */
    public function setCreationUserId(\Application\Sonata\UserBundle\Entity\User $creationUserId)
    {
        $this->creation_user_id = $creationUserId;
    }

    /**
     * Get creation_user_id
     *
     * @return Application\Sonata\UserBundle\Entity\User 
     */
    public function getCreationUserId()
    {
        return $this->creation_user_id;
    }

    /**
     * Set modification_user_id
     *
     * @param Application\Sonata\UserBundle\Entity\User $modificationUserId
     */
    public function setModificationUserId(\Application\Sonata\UserBundle\Entity\User $modificationUserId)
    {
        $this->modification_user_id = $modificationUserId;
    }

    /**
     * Get modification_user_id
     *
     * @return Application\Sonata\UserBundle\Entity\User 
     */
    public function getModificationUserId()
    {
        return $this->modification_user_id;
    }
}